vnotesfandomcom_uk-20200214-history
SVN
Встановлення $ sudo apt-get install subversion Створення нового репозиторія: $ mkdir myproject $ svnadmin create /home/vamel/myproject Перегляд інформації про репозиторій $ svn info file:///home/vamel/myproject Path: myproject URL: file:///home/vamel/myproject Repository Root: file:///home/vamel/myproject Repository UUID: 7881ac8c-492e-43bd-9288-7175b351cfaa Revision: 0 Node Kind: directory Last Changed Rev: 0 Last Changed Date: 2011-07-07 18:44:55 +0300 (чт, 07 лип 2011) Імпортування файлів: Підготовка: $ mkdir project_null $ cd project_null/ $ touch file1 file2 file3 $ vim file1 $ vim file2 $ vim file3 $ cat * hello, this is first file hi, my name is file2 hail to file3! Імпортування: $ svn import project_null file:///home/vamel/myproject -m "first import" Adding project_null/file1 Adding project_null/file2 Adding project_null/file3 Committed revision 1. опція -m це коментар, корисний для огляду змін Перегляд зміни інформації: $ svn info file:///home/vamel/myproject/ Path: myproject URL: file:///home/vamel/myproject Repository Root: file:///home/vamel/myproject Repository UUID: 7881ac8c-492e-43bd-9288-7175b351cfaa Revision: 1 Node Kind: directory Last Changed Author: vamel Last Changed Rev: 1 Last Changed Date: 2011-07-07 19:02:30 +0300 (чт, 07 лип 2011) Перегляд списку файлів репозиторії: $ svn list file:///home/vamel/myproject file1 file2 file3 Завантаження з репозиторію (co for 'check out'): $ mkdir myproject_working $ cd myproject_working $ svn co file:///home/vamel/myproject A myproject/file1 A myproject/file2 A myproject/file3 Checked out revision 1. Перевірка: $ ls myproject $ cd myproject/ $ ls file1 file2 file3 Змінимо один файл: vim file1 $ cat file1 hello, this is first file add one string Завантажимо зміни в репозиторій: $ svn commit -m "file1 has been modified" Sending file1 Transmitting file data . Committed revision 2. Робота з клієнтом: Встановлення клієнта $ sudo apt-get install subversion # Ubuntu/Debian $ sudo emerge dev-vcs/subversion # Gentoo $ sudo yum -y install subversion # CentOS Отримання файлів: svn co svn+ssh://vamel@192.168.1.32/home/vamel/myproject vamel@192.168.1.32's password: vamel@192.168.1.32's password: A myproject/file1 A myproject/file2 A myproject/file3 Checked out revision 2. Перехід у каталог з файлами: $ cd myproject Зміна файлів: $ vim file2 $ cat file2 hi, my name is file2 string2 Збереження змін: $ svn commit -m "file2 has been modified" vamel@192.168.1.32's password: Sending file2 Transmitting file data . Committed revision 3. Ситуація коли версія на сервері новіша за локальну версію: Відредагуємо файл на сервері(або іншому клієнті): $ vim file3 $ cat file3 hail to file3! edit on client1 Збережемо зміни в репозиторії: $ svn commit -m "file3: edit on client1" Sending file3 Transmitting file data . Committed revision 4. На іншому клієнті (не оновлюючи репозиторій) відредагуємо той самий файл: $ vim file3 $ cat file3 hail to file3! edit by client22 Спробуємо зберегти зміни в репозиторії: $ svn commit -m "file3: edit on client22" vamel@192.168.1.32's password: Sending file3 Transmitting file data .svn: Commit failed (details follow): svn: File '/file3' is out of date $ echo $? 1 отримали помилку Виправимо помилку: Оновимо файли $ svn update svn update vamel@192.168.1.32's password: Conflict discovered in 'file3'. Select: (p) postpone, (df) diff-full, (e) edit, (mc) mine-conflict, (tc) theirs-conflict, (s) show all options: p Вміст file3 буде наступним: $ cat file3 hail to file3! <<<<<<< .mine new version edit on client11 >>>>>>> .r4 Відредагуємо file3 до необхідної версії та викажемо всі файли типу file3.* rm file3. Внесемо зміни в репозиторій $ svn commit "file3: new version" Оновлюємося на іншому клієнті $ svn update U file3 U file2 Updated to revision 5. Посилання Відео: *Введение в Subversion. Часть 1. *Введение в Subversion. Часть 2. Тексти: *Subversion visually explained in 30 sec *книга "Управление версиями в Subversion" *короткий довідник по серверу з ubuntu.com